<?php

//Clase que se encarga de las acciones del login
class acciones {

    //Función que instacia la clase Funciones y retorna el objeto
    function func() {
        /* Agregamos las funciones */
        include "funciones.php";

        //Creo el objeto funciones
        $obj = new funciones;

        //Retorno el objeto
        return $obj;
    }

    //Función que se conecta a MySql Retornado la conexión
    // PARAMETROS: Conexión: Objeto conexión
    function conn($objFunc) {
        //Conecto a MySql
        $conexion = $objFunc->conexion();

        //Retorno la conexión
        return $conexion;
    }

    //Función que se desconecta de MySql 
    // PARAMETROS: función: Objeto funcion
    //			   Conexión: Conexión
    function dess($objFunc, $conexion) {
        //Cierro la conexión
        $objFunc->cerrarConn($conexion);
    }

    //Función que se encarga de cargar la grilla
    //Retornardo los datos en formato JSON
    function data($conexion, $start, $limit) {

        //Obtengo la categoria
        if ($_GET['categ']) {
            $categ = $_GET['categ'];
        }

        //Realizo la consulta para obtener todos los registros
        $sqlTot = "select * from ranking WHERE categoria = '" . $categ . "'";
        ;

        //Ejecuto la consulta
        $resultsTot = mysql_query($sqlTot, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$resultsTot) {
            $mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Realizo la consulta para filtrar
        $sql = "select * from ranking WHERE categoria = '" . $categ . "' LIMIT " . $start . "," . $limit;

        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Cuento la cantidad total de registros de la tabla
        $nTot = mysql_num_rows($resultsTot);

        //Creo un array que contendra los valores de la grilla
        $data = array();

        //Recorro la consulta
        while ($row = mysql_fetch_object($results)) {
            //Cargo el dato en el array
            $data [] = $row;
        }

        //Libero memoria
        mysql_free_result($results);

        //Paso el array
        return '{"totalCount": "' . $nTot . '", "Categ":' . json_encode($data) . '}';
    }

    //Elimina un pajaro del ranking
    //PARAMETROS: Conexion Mysql
    //          : pajaro
    function delete($conn, $pajaro, $categ) {

        $sql1 = " SELECT * FROM ranking WHERE categoria = '" . $categ . "' AND pajaro='" . $pajaro . "'";

        //Ejecuto la consulta
        $results1 = mysql_query($sql1, $conn);

        //Verifico si se realizo la consulta bien
        if (!$results1) {
            $mensaje = 'Consulta no valida: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Verifico si existe el pajaro a eliminar
        if (mysql_num_rows($results1) > 0) {

            //Realizo la consulta para filtrar
            $sql = "DELETE FROM ranking WHERE categoria = '" . $categ . "' AND pajaro='" . $pajaro . "'";

            //Ejecuto la consulta
            $results = mysql_query($sql, $conn);

            //Verifico si se realizo la consulta bien
            if (!$results) {
                $mensaje = 'Consulta no valida: ' . mysql_error() . "\n";
                die($mensaje);
            }
        } else {
            die("El pajaro ingresado no existe");
        }
    }

    //Modifica un pajaro del ranking
    //PARAMETROS: Conexion Mysql
    //          : pajaro
    function update($conn, $func) {

        //Tomo los valores
        $categ = $_POST['categ'];
        $pajaro = strtolower($_POST['pajaro']);
        $duenio = strtolower($_POST['duenio']);
        $club = $_POST['club'];
        $primero = $_POST['primero'];
        $segundo = $_POST['segundo'];
        $tercero = $_POST['tercero'];
        $cuarto = $_POST['cuarto'];
        $quinto = $_POST['quinto'];

        //Quito los acentos
        $pajaro = $func->sacarAcentos($pajaro);
        $duenio = $func->sacarAcentos($duenio);

        //Modifico
        $sql = "";
        $sql .= "UPDATE ranking SET duenio ='" . $duenio . "', ";
        $sql .= " club ='" . $club . "', primero ='" . $primero . "', segundo = '" . $segundo . "', ";
        $sql .= " tercero = '" . $tercero . "', cuarto = '" . $cuarto . "', quinto = '" . $quinto . "' ";
        $sql .= "WHERE categoria = '" . $categ . "' AND pajaro='" . $pajaro . "'";

        //Ejecuto la consulta
        $results = mysql_query($sql, $conn);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Consulta no valida: ' . mysql_error() . "\n";
            die($mensaje);
        }
    }
    
    //Elimina todos los registros de la BD
    public function deleteAll($conexion, $categ) {
        //Elimino los registros de la categoria
        $sql = "DELETE FROM ranking WHERE categoria = '" . $categ . "'";

        //Tratamiento
        try {
            //Ejecuto la consulta
            $results = mysql_query($sql, $conexion);

            //Verifico si se realizo la consulta bien
            if (!$results) {
                $mensaje = 'Consulta no valida: ' . mysql_error() . "\n";
                die($mensaje);
            }
            //En caso de error
        } catch (Exception $e) {
            //Informo el error
            die("Error al ejecutar la consulta " . mysql_error() . "\n");
        }
    }
    
}

/* * ******************************************************************* */

//Instancio la clase
$obj = new acciones();

//Creo el objeto funciones
$objFunc = $obj->func();

//Conecto a MySql
$objConn = $obj->conn($objFunc);

//Verifico si esta definida el parámetro action
if (isset($_POST['action']) || isset($_GET['action'])) {

    //Verifico si es POST o GET
    if (isset($_POST['action'])) {
        $accion = $_POST['action'];
    } else {
        $accion = $_GET['action'];
    }

    //Verifico la accion
    switch ($accion) {

        //Si la accion es update
        case 'update':

            $obj->update($objConn, $objFunc);
            //Redirecciono
            header("location: ../php/AbmRanking.php");
            break;

        //Si la accion es delete
        case 'delete':
            //Tomo el valor pajaro
            $pajaro = $_POST['pajaro'];
            $categ = $_POST['categ'];

            $obj->delete($objConn, $pajaro, $categ);
            //Redirecciono
            header("location: ../php/AbmRanking.php");
            break;

        //Combo club
        case 'club':
            $json = $objFunc->cargacomboCLub($objConn);
            echo $json;
            break;

        //Combo categ
        case 'categ':
            $json = $objFunc->cargacomboCateg($objConn);
            echo $json;
            break;
        
        //Elimina todos los registros de una categoria
        case 'deletetodo':
            //echo "SI";
            $obj->deleteAll($objConn, $_POST['categsel']);
            break;
    }
} else {

    $flag = 0;

    //Cargo la grilla
    if (isset($_GET['start']) && isset($_GET['limit'])) {
        //Ejecuto el método y obtendo el resultado JSON
        $datos = $obj->data($objConn, $_GET['start'], $_GET['limit']);
        //Caego en la grilla
        echo $datos;
    } else {
        $flag = 1;
    }

    //Verifico si tiene permisos
    if ($flag == 1) {
        //Verifico si tiene permisos
        $json = $objFunc->permisos($objConn);
        echo $json;
    }
}

//Cierro la conexión
$obj->dess($objFunc, $objConn);
?>